<?php
	if (defined('PARAMETRO_1') && constant('PARAMETRO_1') == 'gruposconhecimento') {
		if ($_POST) {
			if (isset($_POST['btnInserirGrupoConhecimento'])) {
				redireciona(array('administracao', 'gruposconhecimento', 'inserir'));
			}
			
			if (isset($_POST['btnSalvarGrupoConhecimento'])) {
				$grupos	=	pegaPost('strGruposConhecimento');
				
				$grupos	=	preg_replace('/(\r\n|\, )/', ',', $grupos);
				$grupos	=	explode(',', $grupos);
				
				foreach ($grupos as $grupo) {
					if ($grupo != '')
						GrupoConhecimento::inserir(trim($grupo));
				}
				
				redireciona(array('administracao', 'gruposconhecimento'));
			}
			
			if (isset($_POST['btnExcluirGrupoConhecimento'])) {
				
				foreach($_POST as $chave => $post) {
					if (preg_match('/^checkGrupo[0-9]+$/', $chave)) {
						GrupoConhecimento::apagar(str_replace('checkGrupo', '', $chave));
					}
				}
				
				redireciona(array('administracao', 'gruposconhecimento'));
			}
			
			if (isset($_POST['btnInserirAreasConhecimento'])) {
				redireciona(array('administracao', 'gruposconhecimento', constant('PARAMETRO_2'), 'inserir'));
			}
			
			if (isset($_POST['btnSalvarAreasConhecimento'])) {
				if (defined('PARAMETRO_2') && is_numeric(constant('PARAMETRO_2'))) {
					$idGrupo	=	constant('PARAMETRO_2');
					
					$areas	=	pegaPost('strAreasConhecimento');
					
					$areas	=	preg_replace('/(\r\n|\, )/', ',', $areas);
					$areas	=	explode(',', $areas);
					
					foreach ($areas as $area) {
						if ($area != '')
							AreaConhecimento::inserir($idGrupo, trim($area));
					}
					
					redireciona(array('administracao', 'gruposconhecimento', $idGrupo));
				}
				else {
					adicionaMensagem(texto('MENSAGEM_ERRO_ACAO_INVALIDA'), 'erro');
					redireciona($_SESSION['constructore']['URLOrigem']);
				}
			}
			
			if (isset($_POST['btnExcluirAreasConhecimento'])) {
				if (defined('PARAMETRO_2') && is_numeric(constant('PARAMETRO_2'))) {
					$idGrupo	=	constant('PARAMETRO_2');
					
					foreach($_POST as $chave => $post) {
						if (preg_match('/^checkArea[0-9]+$/', $chave)) {
							AreaConhecimento::excluir(str_replace('checkArea', '', $chave));
						}
					}
					
					redireciona(array('administracao', 'gruposconhecimento', $idGrupo));
				}
				else {
					adicionaMensagem(texto('MENSAGEM_ERRO_ACAO_INVALIDA'));
					redireciona($_SESSION['constructore']['URLOrigem']);
				}
			}
		}
		else {
			//CONFIGURA TITULO DA PAGINA
			$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('AREA_GRUPOS_DE_CONHECIMENTO') . ' - ' . texto('AREA_ADMINISTRACAO'))));
			$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('AREA_ADMINISTRACAO') . ' > ' . texto('AREA_GRUPOS_DE_CONHECIMENTO'));
			
			$this->getSmarty()->assign('EXPLICACAO_INSERIR_GRUPOS_DE_CONHECIMENTO_TITULO', texto('TEXTO_INSERIR_DADO', array(texto('AREA_GRUPOS_DE_CONHECIMENTO'))));
			$this->getSmarty()->assign('TEXTO_INSERIR_GRUPOS_DE_CONHECIMENTO', texto('TEXTO_INSERIR_DADO', array(texto('AREA_GRUPOS_DE_CONHECIMENTO'))));
			
			$this->getSmarty()->assign('LEGEND_NENHUM_GRUPO_DE_CONHECIMENTO', texto('LEGEND_NENHUM', array(texto('DADOS_GRUPO_DE_CONHECIMENTO'))));
			$this->getSmarty()->assign('LEGEND_NENHUMA_AREA_DE_CONHECIMENTO', texto('LEGEND_NENHUMA', array(texto('DADOS_AREA_DE_CONHECIMENTO'))));
			$this->associaTexto(array('DADOS_OUTRA_AREA_DE_CONHECIMENTO'));
			
			if (!defined('PARAMETRO_2') || (defined('PARAMETRO_2') && constant('PARAMETRO_2') != 'inserir' && !is_numeric(constant('PARAMETRO_2')))) {
				//SE E PARA EXIBIR A LISTA DE GRUPOS (NAO INSERIR OU EXIBIR UM GRUPO)
				
				if (defined('PARAMETRO_2'))
					$ordenacaoAtual	=	constant('PARAMETRO_2');
				else
					$ordenacaoAtual	=	'grupo';
				
				if (defined('PARAMETRO_3'))
					$ordemAtual	=	constant('PARAMETRO_3');
				else
					$ordemAtual	=	'asc';
				
				$ordenacaoAtual	=	str_replace('ordena', '', $ordenacaoAtual);
				
				if ($ordenacaoAtual == 'areas')
					$ordenacaoAtual	=	'qtdAreas';
				else
					$ordenacaoAtual	=	'grupo';
				
				if ($resultado	=	GrupoConhecimento::buscar(null, $ordenacaoAtual, $ordemAtual, null, null)) {
					$listaGrupos	=	$resultado['listaResultados'];
					$qtdGrupos		=	$resultado['qtdResultadosTotal'];
					$qtdPaginas		=	$resultado['qtdPaginas'];
					
					foreach ($listaGrupos as $chave => $grupo) {
						$listaGrupos[$chave]['href']	=	montaLink(array('administracao', 'gruposconhecimento', $grupo['idGrupo']));
					}
					
					$this->getSmarty()->assign('LISTA_TITULO_GRUPO_HREF', montaLink(array('administracao', 'gruposconhecimento', 'ordenagrupo', $ordenacaoAtual != 'grupo' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'))));
					$this->getSmarty()->assign('LISTA_TITULO_GRUPO_TITLE', $ordenacaoAtual != 'grupo' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_GRUPO_DE_CONHECIMENTO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_GRUPO_DE_CONHECIMENTO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_GRUPO_DE_CONHECIMENTO')))));
					
					$this->getSmarty()->assign('LISTA_TITULO_NUMERO_DE_AREAS_HREF', montaLink(array('administracao', 'gruposconhecimento', 'ordenaareas', $ordenacaoAtual != 'qtdAreas' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'))));
					$this->getSmarty()->assign('LISTA_TITULO_NUMERO_DE_AREAS_TITLE', $ordenacaoAtual != 'qtdAreas' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_AREAS_DE_CONHECIMENTO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_AREAS_DE_CONHECIMENTO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_AREAS_DE_CONHECIMENTO')))));
					
					$this->getSmarty()->assign('ordenacaoAtual', $ordenacaoAtual);
					$this->getSmarty()->assign('ordemAtual', $ordemAtual);
					$this->getSmarty()->assign('listaGrupos', $listaGrupos);
					
					$this->getSmarty()->assign('TEXTO_QUANTIDADE_RESULTADOS', texto('TEXTO_QUANTIDADE_RESULTADOS', array($qtdGrupos, $qtdGrupos)));
					
					$this->exibir('administracaogruposconhecimento');
				}
				else {
					//TODO QUE ERRO?
					adicionaMensagem(texto('MENSAGEM_ERRO_DE_SISTEMA'));
					redireciona($_SESSION['constructore']['URLOrigem']);
				}
			}
			else {
				if (constant('PARAMETRO_2') == 'inserir') {
					//SE E PARA INSERIR GRUPOS
					
					$this->getSmarty()->assign('inserirGrupoConhecimento', true);
					
					$this->exibir('administracaogruposconhecimento');
				}
				else {
					if (is_numeric(constant('PARAMETRO_2'))) {
						//SE E PARA EXIBIR AS AREAS DE UM GRUPO
						
						$idGrupo	=	constant('PARAMETRO_2');
						
						$grupoConhecimento	=	new GrupoConhecimento($idGrupo);
						
						if ($grupoConhecimento->getIdGrupo() != NULL) {
							$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('AREA_GRUPOS_DE_CONHECIMENTO') . ' - ' . texto('AREA_ADMINISTRACAO'))));
							$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('AREA_ADMINISTRACAO') . ' > ' . texto('AREA_GRUPOS_DE_CONHECIMENTO') . ' > ' . $grupoConhecimento->getGrupo());
							
							$this->getSmarty()->assign('TEXTO_INSERIR_AREAS_DE_CONHECIMENTO', texto('TEXTO_INSERIR_DADO', array(texto('AREA_AREAS_DE_CONHECIMENTO'))));
							
							if (defined('PARAMETRO_3') && constant('PARAMETRO_3') == 'inserir') {
								$this->getSmarty()->assign('inserirAreasConhecimento', true);
							}
							else {
								
								$listaAreas	=	$grupoConhecimento->getAreas(true);
								
								$this->getSmarty()->assign('listaAreas', $listaAreas);
								
								$this->getSmarty()->assign('TEXTO_QUANTIDADE_RESULTADOS', texto('TEXTO_QUANTIDADE_RESULTADOS', array(sizeof($listaAreas), sizeof($listaAreas))));
							}
							$this->exibir('administracaoareasconhecimento');
						}
						else {
							//TODO QUE ERRO?
							adicionaMensagem(texto('MENSAGEM_ERRO_DE_SISTEMA'));
							redireciona($_SESSION['constructore']['URLOrigem']);
						}
					}
					else {
						//IMPOSSIVEL CAIR AQUI (?)
						redireciona(array('404'));
					}
				}
			}
		}
	}
	else {
		redireciona(array('404'));
	}
?>